Macintosh System Error Codes

This article explains what some Macintosh system errors actually mean. You can use them to interpret what is happening when your Macintosh gives these errors.

Because the Mac OS is a sophisticated, complex operating system, the problems a user encounters can be equally complex.

These are examples of some problems that may occur:
• A handle can be de-referenced.
• A routine can get a NIL pointer.
• The stack can dip into the heap for just a few cycles and not be caught by the stack sniffer.
• An application can forget to check an error code.

A Macintosh usually crashes with a system error code while running under System 6.0.x. Starting with System 7, errors are displayed in a different fashion. Instead of displaying an error code, the system translates the code to the appropriate words, like "Address Error".

Finding out what's wrong involves use of debugging tools, intricate knowledge of Macintosh memory structures, and familiarity with the application itself. Fixing it usually involves recompiling the source code. The table below explains some of the codes.

ID=01 Bus Error
This means the computer tried to access memory that doesn't exist. You can get this error on almost any Macintosh. If one of these computers tried to access one or more bytes beyond the total number of bytes in RAM, you see a bus error. You should never see this error on a Macintosh Plus or SE, because address references that are out of bounds "roll over". This means if one of these computers tries to access one byte beyond the total bytes in RAM, it actually accesses the first byte in memory. If you see this error on a Macintosh Plus or SE, it's reporting the wrong error or having hardware problems.

ID=02 Address Error
The Motorola 68000 microprocessor can access memory in increments of one byte (8 bits), one word (16 bits), or one long word (32 bits). The microprocessor can access a byte of information at an odd or even memory address. But it must access a word or long word at an even memory address. So, when the microprocessor attempts to read or write a word or long word at an odd address, you see this error. Since that's a 50/50 proposition when running random code, this one shows up quite often.

ID=03 Illegal Instruction
The computer has a specific vocabulary of machine language instructions it can understand. If a computer tries to execute an instruction that isn't in its vocabulary, you see this error code. It's less likely than error 02, but still very common.

ID=04 Zero Divide Error
This error results if the microprocessor divides two numbers, and the divisor is zero. Sometimes a programmer puts these in as debugging aids, and then forgets to take them out.

ID=05 Range Check Error
Programmers can use an instruction in the Motorola 68000 to check if a number is within a certain range. This error indicates that the number tested isn't in the specified range.

ID=06 Overflow Error
Each number stored in a computer is given a certain amount of space. The larger the number, the more space is needed to represent the number. An overflow condition results if a generated number is too big for its allotted space. A Motorola 68000 instruction tests for an overflow condition, and displays this error if it detects an overflow.

ID=07 Privilege Violation
The Motorola 68000 runs in Supervisor or User mode. The Macintosh should always be in Supervisor mode, but sometimes is placed in User mode. Some of the instructions can only be executed in Supervisor mode. If the computer attempts one of these instructions while in User mode, a Privilege Violation error results.

ID=08 Trace Mode Error
A programmer can use a runtime debugger while in Trace mode. This allows tracing through a program one instruction at a time. You see this error if a debugger isn't installed and the 68000 is accidentally placed in Trace mode.

ID=09 and ID=10 Line 1010 & 1111 Trap
There are many routines in the Macintosh ROM that can be called by placing instructions in a program that aren't in the 68000's vocabulary. When the 68000 encounters such an instruction, it looks it up in the instruction table. This table gives the location of routines paired with each instruction. If it finds an entry in the table for the instruction, it branches to the routine. If there's no entry for the instruction, you see one of these errors.

ID=12 Unimplemented Core Routine
A programmer might set breakpoints in parts of a program to inspect for errors. This requires using a debugger. If a debugger isn't installed when a breakpoint occurs, you see this error code.

ID=13 Uninstalled Interrupt
The Macintosh uses an interrupt to identify when devices like keyboards and disk drives need service. Routines must be available in memory to tell the computer how to service the device. If those routines aren't available, you see this error.

ID=15 Segment Loader Error
Macintosh programs are broken up into segments, and each program will always have at least one segment. Multiple segments allow loading parts of the program into memory to provide more room for data in internal RAM. The segment loader is responsible for loading a needed segment into RAM. If the segment loader can't do this, you'll see this error.

ID=17 through ID=24 Missing Packages 0-7
The Macintosh uses packages to do specific tasks. Some of the packages are International Utilities, Binary-Decimal Conversion, Standard File Utilities, and Disk Initialization. These packages are located in the System file. If you get these errors, you probably have a damaged System file. Error codes 15, 16, 26, 27, 30, and 31 also come up when the System file is damaged. Try replacing the System file.

ID=25 Memory Full Error
You've probably run out of RAM. But you can get this error when an earlier error causes the Macintosh to falsely detect an out-of-memory condition.

ID=26 Bad Program Launch
The Macintosh couldn't execute the application opened.

ID=28 Stack Ran into Heap
This is similar to the Memory Full error. It's a good idea to save your work frequently, and keep current backups of your hard disk data. When a system crash does occur, you'll lose less data if you've taken these precautions.

Troubleshooting System Errors

It's a good idea to save your work frequently, and keep current backup copies of your hard disk data. When a system crash occurs, you'll lose less data if you've taken these precautions.

If you're getting system errors frequently, investigate these possibilities:
• Try to open the document with a current version copy of the application.
• Try opening other documents with the same copy of the application.
• Check to see if the document size exceeds the application size limits.
• Boot your system with extensions off (restart while holding the Shift key down).
• Any changes (new Control Panels, extensions, etc.) you've made to the system might give you a clue to the cause of the crashes.
• Make a note of the desk accessories you had open at the time of the crash and exactly what you did before the crash.
• Make a note of the error ID or text, and the version numbers of the application and system software you were using.
• Try to recreate the problem on another Macintosh.
• Cleanly install your system software and try the application again.

Negative Error Codes

Here is a list of negative codes (0 to -261) with brief explanations.

General System Errors (VBL Mgr, Queue)

ID=0  noErr 0 for success
 "OR" 
ID=0  smNotTruncated
No truncation necessary

ID= -1  qErr
queue element not foundm during deletion
 "OR"
ID= -1  smTruncErr       
Truncation indicator alone is wider than the specified width

ID= -2  vTypErr
invalid queue element

ID= -3  corErr
core routine number out of range

ID= -4  unimpErr
unimplemented core routine

ID= -5  SlpTypeErr
invalid queue element

ID= -8  seNoDB
no debugger installed to handle debugger command

Color Manager Errors

ID= -9  iTabPurgErr
from Color2Index/ITabMatch

ID= -10  noColMatch
from Color2Index/ITabMatch

ID= -11  qAllocErr
from MakeITable

ID= -12  tblAllocErr
from MakeITable

ID= -13  overRun
from MakeITable

ID= -14  noRoomErr
from MakeITable

ID= -15  seOutOfRange
from SetEntry

ID= -16  seProtErr
from SetEntry

ID= -17  i2CRangeErr
from SetEntry

ID= -18  gdBadDev
from SetEntry

ID= -19  reRangeErr
from SetEntry

ID= -20  seInvRequest
from SetEntry

ID= -21  seNoMemErr
from SetEntry

I/O System Errors

ID= -17  controlErr       
Driver can't respond to Control call

ID= -18  statusErr
Driver can't respond to Status call

ID= -19  readErr
Driver can't respond to Read call

ID= -20  writErr
Driver can't respond to Write call

ID= -21  badUnitErr
Driver ref num doesn't match unit table

ID= -22  unitEmptyErr
Driver ref num specifies NIL handle in unit table

ID= -23  openErr
Requested read/write permission doesn't match driver's open permission, or Attempt to open RAM serial Driver failed

ID= -24  closErr
Close failed; Permission to close .MPP driver was denied

ID= -25  dRemovErr
tried to remove an open driver

ID= -26  dInstErr
DrvrInstall couldn't find driver in resources

ID= -27  abortErr
IO call aborted by KillIO; Publisher has written a new edition
      "OR"
ID= -27  iIOAbortErr
IO abort error (Printing Manager)

ID= -28  notOpenErr
Couldn't rd/wr/ctl/sts cause driver not opened

ID= -29  unitTblFullErr
Unit table has no more entries

ID= -30  dceExtErr
dce extension error

File System Errors

ID= -33  dirFulErr
Directory full

ID= -34  dskFulErr
Disk full

ID= -35  nsvErr
No such volume; volume not found

ID= -36  ioErr
I/O error

ID= -37  bdNamErr
Bad file name; there may be no bad names in the final system!

ID= -38  fnOpnErr
File not open

ID= -39  eofErr
End of file; no additional data in the format

ID= -40  posErr
Tried to position to before start of file (r/w)

ID= -41  mFulErr 
Memory full (open) or file won't fit (load)

ID= -42  tmfoErr
Too many files open

ID= -43  fnfErr
File not found; Folder not found;Edition container not found; Target not found

ID= -44  wPrErr
Disk is write-protected; Volume is locked through hardware

ID= -45  fLckdErr
File is locked

ID= -45  fLckedErr
Publisher writing to an edition

ID= -46  vLckdErr
Volume is locked through software

ID= -47  fBsyErr
File is busy (delete); Section doing I/O

ID= -48  dupFNErr
Duplicate filename (rename); File found instead of folder

ID= -49  opWrErr
File already open with write permission

ID= -50  paramErr
Error in user parameter list

ID= -51  rfNumErr
Reference number invalid

ID= -52  gfpErr
Get file position error

ID= -53  volOffLinErr
Volume is off line

ID= -54  permErr
Software lock on file; Not a subscriber [permissions error on file open]

ID= -55  volOnLinErr
drive volume already on-line at MountVol

ID= -56  nsDrvErr
no such drive (tried to mount a bad drive num)

ID= -57  noMacDskErr
not a Macintosh disk (sig bytes are wrong)

ID= -58  extFSErr
External file system file system identifier is nonzero

ID= -59  fsRnErr
file system internal error: during rename the old entry was deleted but could not be restored.

ID= -60  badMDBErr
bad master directory block

ID= -61  wrPermErr
Write permissions error; Not a publisher

Font Manager Errors

ID= -64  fontDecError
error during font declaration

ID= -65  fontNotDeclared
font not declared

ID= -66  fontSubErr
font substitution occurred

Disk, Serial Ports, Clock Specific Errors

ID= -64  lastDskErr

ID= -64  noDriveErr
drive not installed

ID= -65  offLinErr
r/w requested for an off-line drive

ID= -66  noNybErr
couldn't find 5 nybbles in 200 tries

ID= -67  noAdrMkErr
couldn't find valid addr mark

ID= -68  dataVerErr
read verify compare failed

ID= -69  badCksmErr
addr mark checksum didn't check

ID= -70  badBtSlpErr
bad addr mark bit slip nibbles

ID= -71  noDtaMkErr
couldn't find a data mark header

ID= -72  badDCksum
bad data mark checksum

ID= -73  badDBtSlp
bad data mark bit slip nibbles

ID= -74  wrUnderrun
write underrun occurred

ID= -75  cantStepErr
step handshake failed

ID= -76  tk0BadErr
track 0 detect doesn't change

ID= -77  initIWMErr
unable to initialize IWM

ID= -78  twoSideErr
tried to read 2nd side on a 1-sided drive

ID= -79  spdAdjErr
unable to correctly adjust disk speed

ID= -80  seekErr
track number wrong on address mark

ID= -81  sectNFErr
sector number never found on a track

ID= -82  fmt1Err
can't find sector 0 after track format

ID= -83  fmt2Err
can't get enough sync

ID= -84  verErr
track failed to verify

ID= -84  firstDskErr

ID= -85  clkRdErr
unable to read same clock value twice

ID= -86  clkWrErr
time written did not verify

ID= -87  prWrErr
parameter RAM written didn't read-verify

ID= -88  prInitErr
InitUtil found the parameter RAM uninitialized

ID= -89  rcvrErr
SCC receiver error (framing, parity, OR)

ID= -90  breakRecd
Break received (SCC)

AppleTalk Errors

ID= -91  ddpSktErr
Error opening socket
 "OR"
ID= -91  eMultiErr
Invalid address or table is full

ID= -92  ddpLenErr
Data length too big
      "OR"
ID= -92  eLenErr
Packet too large or first entry of the write-data structure didn't contain the full 14-byte header

ID= -93  noBridgeErr
No router available [for non-local send]

ID= -94  lapProtErr
error in attaching/detaching protocol
 "OR"
ID= -94  LAPProtErr
Protocol handler is already attached, node's protocol table is full, protocol not attached, or protocol handler pointer was not 0

ID= -95  excessCollsns
Hardware error [excessive collisions on write]

ID= -97  portInUse
driver Open error code (port is in use)

ID= -98  portNotCf
driver Open error code (parameter RAM not configured for this connection)

ID= -99  memROZErr
hard error in ROZ

ID= -99  memROZError
hard error in ROZ

ID= -99  memROZWarn
soft error in ROZ

Scrap Manager Errors

ID= -100 noScrapErr
No scrap exists error

ID= -102 noTypeErr
Format not available [no object of that type in scrap]

Storage Allocator Errors

ID= -108 memFullErr
Ran out of memory [not enough room in heap zone]

ID= -109 nilHandleErr
GetHandleSize fails on baseText or substitutionText; NIL master pointer [handle was NIL in HandleZone or other]

ID= -110 memAdrErr
Address was odd, or out of range

ID= -111 memWZErr
Attempted to operate on a free block; GetHandleSize fails on baseText or substitutionText [WhichZone failed (applied to free block)]

ID= -112 memPurErr
Trying to purge a locked or non-purgeable block

ID= -113 memAZErr
Address in zone check failed

ID= -114 memPCErr
Pointer Check failed

ID= -115 memBCErr
Block Check failed

ID= -116 memSCErr
Size Check failed

ID= -117 memLockedErr 
Trying to move a locked block (MoveHHi)

HFS Errors

ID= -120 dirNFErr
Directory not found

ID= -121 tmwdoErr
No free WDCB available

ID= -122 badMovErr
Move into offspring error

ID= -123 wrgVolTypErr
Not an HFS volume [wrong volume type error or (obsolete) operation not supported for MFS]

ID= -124 volGoneErr
Server volume has been disconnected.

ID= -125 updPixMemErr
Insufficient memory to update a pixmap

ID= -127 fsDSIntErr
Internal file system error

Menu Manager Errors

ID= -126 dsMBarNFnd
System error code for MBDF not found

ID= -127 dsHMenuFindErr
Couldn't find HMenu's parent in MenuKey

ID= -128 userCanceledErr
User canceled an operation

HFS FileID Errors

ID= -130 fidNotFound
no file thread exists

ID= -131 fidNotAFile
directory specified

ID= -132 fidExists
file ID already exists

Color QuickDraw and Color Manager Errors

ID= -147 regionTooBigError
Region too big or complex

ID= -148 pixMapTooBigErr
Pixel map record is deeper than 1 bit per pixel [passed pixelmap is too large]

ID= -149 notEnoughStack
Not enough stack space for the necessary buffers
 "OR"
ID= -149 mfStackErr
Insufficient stack

ID= -150 cMatchErr
Color2Index failed to find an index

ID= -151 cTempMemErr
Failed to allocate memory for temporary structures

ID= -152 cNoMemErr
Failed to allocate memory for structure

ID= -153 cRangeErr
Range error on colorTable request

ID= -154 cProtectErr
ColorTable entry protection violation

ID= -155 cDevErr
Invalid type of graphics device

ID= -156 cResErr
Invalid resolution for MakeITable

ID= -157 cDepthErr
Invalid pixel depth

ID= -158 cParmErr
Invalid parameter

Resource Manager Errors (other than I/O)

ID= -185 badExtResource
Extended resource has a bad format.

ID= -186 CantDecompress
Resource bent ("the bends") can't decompress a compressed resource

ID= -188 resourceInMemory 
Resource already in memory

ID= -189 writingPastEnd
Writing past end of file

ID= -190 inputOutOfBounds
Offset or count out of bounds

ID= -192 resNotFound
Resource not found

ID= -193 resFNotFound
Resource file not found

ID= -194 addResFailed
AddResource failed

ID= -195 addRefFailed
AddReference failed

ID= -196 rmvResFailed
RmveResource failed

ID= -197 rmvRefFailed
RmveReference failed

ID= -198 resAttrErr
Attribute inconsistent with operation

ID= -199 mapReadErr
Map inconsistent with operation

Sound Manager Errors

ID= -200 noHardware
Required sound hardware not available [no hardware support for the specified synthesizer]

ID= -201 notEnoughHardware
Insufficient hardware available [no more channels for the specified synthesizer]

ID= -203 queueFull
No room in the queue

ID= -204 resProblem
Problem loading the resource

ID= -205 badChannel
Channel is corrupt or [invalid channel queue length]

ID= -206 badFormat
Resource is corrupt or unusable [handle to 'snd ' resource was invalid]

ID= -207 notEnoughBufferSpace
Insufficient memory available

ID= -208 badFileFormat
File is corrupt or unusable, or not

AIFF or AIFF-C

ID= -209 channel
Channel is busy

ID= -210 buffersTooSmall
Buffer is too small

ID= -211 channelNotBusy
Channel not currently used

ID= -212 noMoreRealTime
Not enough CPU time available

ID= -213 badParam
A parameter is incorrect

ID= -220 siNoSoundInHardware
No sound input hardware available

ID= -221 siBadSoundInDevice
Invalid sound input device

ID= -222 siNoBufferSpecified
No buffer specified

ID= -223 siInvalidCompression
Invalid compression type

ID= -224 siHardDiskTooSlow
Hard drive too slow to record

ID= -225 siInvalidSampleRate
Invalid sample rate

ID= -226 siInvalidSampleSize
Invalid sample size

ID= -227 siDeviceBusyErr
Sound input device is busy

ID= -228 siBadDeviceName
Invalid device name

ID= -229 siBadRefNum
Invalid reference number

ID= -230 siInputDeviceErr
Input device hardware failure

ID= -231 siUnknownInfoType
Unknown type of information

ID= -232 siUnknownQuality
Unknown quality

MIDI Manager Errors

ID= -250 midiNoClientErr
no client with that ID found

ID= -251 midiNoPortErr
no port with that ID found

ID= -252 midiTooManyPortsErr
too many ports already installed in the system

ID= -253 midiTooManyConsErr
too many connections made

ID= -254 midiVConnectErr
pending virtual connection created

ID= -255 midiVConnectMade
pending virtual connection resolved

ID= -256 midiVConnectRmvd
pending virtual connection removed

ID= -257 midiNoConErr
no connection exists between specified ports

ID= -258 midiWriteErr
couldn't write to all connected ports

ID= -259 midiNameLenErr
name supplied is longer than 31 characters

ID= -260 midiDupIDErr
duplicate client ID

ID= -261 midiInvalidCmdErr 
command not supported for port type